package com.jsyl.lwbk.business.mapper.education;

import com.jsyl.lwbk.business.domain.education.CourseChild;
import com.jsyl.lwbk.business.vo.education.ChildCourseVO;
import com.jsyl.lwbk.business.domain.Child;
import com.jsyl.lwbk.business.domain.education.CourseChildExample;
import com.jsyl.lwbk.business.dto.ChildInfoDTO;
import com.jsyl.lwbk.business.dto.education.CourseChildListDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CourseChildMapper {
    long countByExample(CourseChildExample example);

    int deleteByExample(CourseChildExample example);

    int insert(CourseChild record);

    int insertSelective(CourseChild record);

    List<CourseChild> selectByExample(CourseChildExample example);

    List<CourseChild> list(CourseChildListDTO courseChildListDTO);

    CourseChild selectOneByExample(CourseChildExample example);

    CourseChild getByCourseIdChildId(@Param("courseId") Long record,@Param("childId") Long childId);

    int updateSignType(@Param("courseId") Long courseId,@Param("childId") Long childId,@Param("signType") Integer signType);

    int deleteByCourseId(Long courseId);

    List<ChildCourseVO> listByTeacherIdAndMonth(@Param("courseChildListDTO") CourseChildListDTO courseChildListDTO);

    List<ChildCourseVO> listReportChildren(CourseChildListDTO courseChildListDTO);

    int updateByExampleSelective(@Param("record") CourseChild record, @Param("example") CourseChildExample example);

    int updateByExample(@Param("record") CourseChild record, @Param("example") CourseChildExample example);

    List<Long> listChildIds(@Param("courseId") Long courseId);

    List<Child> listCourseChild(@Param("childCourseId")Long childCourseId);

    List<ChildInfoDTO> childInfoList(@Param("childCourseId")Long childCourseId);

    int updateScoreFlag(@Param("childCourseId") Long childCourseId);
}